package com.woniuxy.lrz.carlproject.service;

import com.woniuxy.lrz.carlproject.controller.form.userform.*;
import com.woniuxy.lrz.carlproject.model.CarDetail;
import com.woniuxy.lrz.carlproject.model.ReceiveAddress;
import com.woniuxy.lrz.carlproject.model.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.lrz.carlproject.model.UserCar;
import com.woniuxy.lrz.carlproject.service.dto.userdto.CarDetailDTO;
import com.woniuxy.lrz.carlproject.service.dto.userdto.LoginDTO;
import com.woniuxy.lrz.carlproject.service.dto.userdto.UserInfoDTO;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author lrz
 * @since 2022-09-28
 */
public interface UserService extends IService<User> {

    String getCheckCode(String phone);

    void userRegister(RegisterForm registerForm);

    LoginDTO userLogin(LoginForm loginForm);

    UserInfoDTO getUserInfo();

    void updateUserInfo(ModifyInfoForm modifyInfoForm);

    void updateUserImage(Integer loginId, String url);

    void addReceiveAddress(ReceiveAddressForm receiveAddressForm);

    void updateReceiveAddress(ReceiveAddressForm2 receiveAddressForm);

    void deleteReceiveAddress(Integer receiveAddressId);

    ArrayList<ReceiveAddress> getReceiveAddress();

    void addMyCar(AddCarForm addCarForm);

    List<CarDetailDTO> getMyCars();

    void deleteCar(Integer userCarId);

    void setCurrentCar(Integer userCarId);

    void changeCarInfo(ChangeCarForm changeCarForm);

    List<CarDetail> getAllCarDetailById(Integer carDetailId);
}
